package com.yuanfeng.goods.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanfeng.commoms.dto.base.DealerGoodsUserInfoDTO;
import com.yuanfeng.commoms.dto.goods.CommonShopStateDTO;
import com.yuanfeng.commoms.dto.oos.OssUploadUpdateParamDTO;
import com.yuanfeng.commoms.util.ResponseResult;
import com.yuanfeng.commoms.vo.goods.NoneGoodsQueryDTO;
import com.yuanfeng.goods.dto.*;
import com.yuanfeng.goods.entity.GoodsBaseEntity;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @ClassName GoodsBaseService
 * @Description 商品表
 * @Author cyp
 * @Date 2023-05-25 09:16:34
 * @Version 1.0
 **/
public interface GoodsBaseService extends IService<GoodsBaseEntity> {

    /**
     * 根据商品id修改收藏数
     *
     * @param goodId
     * @return
     */
    ResponseResult updateGoodsCollect(Integer goodId);

    /**
     * 订单购物车中获取商品信息，及校验信息
     *
     * @param goodsId
     * @return
     */
    ResponseResult getGoodsDetails(Integer goodsId);


    /**
     * 查询出售中的商品规格列表
     *
     * @param param
     * @return
     */
    ResponseResult queryByGoodsBaseList(ManageCommonIdsDTO param);

    /**
     * 查询出售中的商品规格列表 活动版
     *
     * @param param
     * @return
     */
    ResponseResult queryByGoodsBaseList3(ManageCommonIdsDTO param);


    /**
     * 查询编辑秒杀商品的规格列表
     *
     * @param param
     * @return
     */
    ResponseResult querySeckillGoodsList(ManageCommonIdsDTO param);

    /**
     * 根据goodsid 直接修改库存和库存最大值
     * @param param
     * @return
     */
    ResponseResult updateGoodsBaseByCommonIdAndGoodsId(ManageGoodsBaseListResultDTO param);

    /**
     * 新增商品
     * @param param
     * @return
     */
    ResponseResult newAddGoods(ManageGdsCommonPublishDTO param);

    /**
     * 更新商品
     * @param param
     * @return
     */
    ResponseResult updateGoods(ManageGdsCommonUpdateDTO param);

    /**
     * 查看商品
     *
     * @param param
     * @return
     */
    ResponseResult queryGoods(ManageCommonIdsDTO param);

    /**
     * 校验商品是否是自己的
     * @param goodsUserInfo
     * @return
     */
    ResponseResult isMeGoods(DealerGoodsUserInfoDTO goodsUserInfo);
      /**
     * 查询所有商品 多个goodsID
     *
     * @param param
     * @return
     */
    ResponseResult queryAllGoodsInfo(PlatFormAllGoodsDTO param);

    /**
     *商品搜索导出
     * @param param
     * @param response
     * @return
     */
    ResponseResult selectCommodityDetailsExp(GoodsDetailsDTO param, HttpServletResponse response);


    /**
     * 查询商品规格等详情
     * @param param
     * @return
     */

    ResponseResult selectCommodityDetails(GoodsDetailsDTO param) throws IllegalAccessException;

    /*
     *查询红包下的商品列表
     */
     ResponseResult selectGoodsDetailByRct(Map<String, Object> paraMap);

    /**
     * 更新spu商品 除shopId无其他条件
     *
     * @param map
     * @return
     */
    ResponseResult updateGoodsBaseByMap(Map<String, Object> map);

    /**
     * 更新sku商品状态
     *
     * @param commonParam
     * @return
     */
    ResponseResult updateGoodsBaseState(CommonShopStateDTO commonParam);

    /**
     * 平台删除 积分商品
     *
     * @param param
     * @return
     */
    ResponseResult deleteIntegralGoods(ManageCommonIdsDTO param);

    /**
     * 平台查询 积分商品列表
     *
     * @param param
     * @return
     */
    ResponseResult queryIntegralGoodsAll(Map<String, Object> param);



    ResponseResult getGoodsCommonDetails(Integer commonId);

    /**
     * 查询出售中的商品规格列表
     *
     * @param param
     * @return
     */
    ResponseResult queryByGoodsBaseList2(ManageCommonIdsDTO param);


    /**
     * 批量调价
     *
     * @param param
     * @return
     */
   ResponseResult batchUpdateGoodsPrice(Map<String,Object> param);

    /**
     * 修改同步供应商商品的 价格
     */
    ResponseResult updateSupperGoodsPrice(UpdateSupperGoodsPriceDTO param);

    /**
     * 查询同步供应商商品 的价格
     */
    ResponseResult querySupperGoodsPrice(Map<String,Object> param);

    /**
     * 根据typeId查询商品发布相关信息
     *
     * @param param
     * @return
     */
    ResponseResult queryByTypeId(ManageByTypeIdParamInfoDTO param);


    /**
     * 上传图片到oss服务器
     * @param param
     * @return
     */
    ResponseResult insertOssPhotoPort(OssPhotoInsertDTO param);


    /**
     * 根据商品id查询详情
     *
     */
    ResponseResult queryGdsDetail(WapGoodsDetailQueryDTO param);

    /**
     * h5首页猜你喜欢
     *
     * @return
     */
    ResponseResult queryFootPrintH5(GuessYouLikeQueryDTO param);


    /**
     * 获取 移动端 商品分享页海报
     *
     * @param param
     * @return
     */
    ResponseResult getGoodsPoster(Map<String, Object> param);


    /**
     * 查询活动专区商品
     *
     * @param param
     * @return
     */

    ResponseResult queryNoneGoods(NoneGoodsQueryDTO param) throws IllegalAccessException;


    /**
     * 上传图片或文档
     *
     * @param param
     * @return
     */
    ResponseResult uploadToOss(OssUploadUpdateParamDTO param);

    /**
     * 批量上架同步供应商商品
     * @param param
     * @return
     */
    ResponseResult updateSupperGoodsStart(Map<String, Object> param);
}

